package docmanager.operation.documentos;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import docmanager.business.objects.Documento;
import docmanager.business.objects.Sector;
import docmanager.business.objects.TipoDocumento;
import docmanager.db.ConnectionPool;

import bf.operation.Operation;
import bf.operation.OperationException;

public class OpConsultarDocumento2 extends Operation {

	String nextURL = "";

	
/*	
	
	@Override
	public Map execute(HttpServletRequest request) throws OperationException {
		Map m = new HashMap();
		m.put("accion", "consulta");
		// Levantamos el tipo de documento.
		int idTipoDoc = Integer.parseInt(request.getParameter("id"));
		try {
			Connection conn = ConnectionPool.getConnection();
			TipoDocumento tipoDoc = new TipoDocumento(conn,idTipoDoc);
			m.put("tipoDoc", tipoDoc);
			if (tipoDoc.isAdmiteSector())
			{
				this.nextURL = "Documentos/ListarSecciones.jsp";
				// Cargamos los sectores.
				List<Sector> sectores = Sector.obtenerTodosLosSectores(conn);
				m.put("sectores", sectores);
			}
			else
			{
				//m.put("mensaje", "FALTA IMPLEMENTAR EL CASO SIN SECCIONES");
				//this.nextURL = "Main.jsp";
				m.put("accion", "consulta");
				this.nextURL = "Documentos/ListarDocumentos.jsp";
				List<Documento> documentos = Documento.obtenerDocumentos(conn, idTipoDoc);
				m.put("documentos", documentos);
			}
			ConnectionPool.closeConn(conn);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new OperationException();
		}
		
		return m;
	}
*/
	
	public Map execute(HttpServletRequest request) throws OperationException {
		Map m = new HashMap();
		m.put("accion", "consulta");
		// Cargamos el id de seccion.
		int idSector = Integer.parseInt(request.getParameter("id_sector"));
		m.put("idSector", new Integer(idSector));
		try {
			Connection conn = ConnectionPool.getConnection();
	        // Cargamos todos los documentos bajo Manual de Calidad.
			List<Documento> documentos = Documento.obtenerDocumentos(conn, TipoDocumento.MANUAL_CALIDAD);
			m.put("documentos_calidad", documentos);
			// Cargamos todos los documentos bajo procedimientos, de este sector.
			documentos = Documento.obtenerDocumentos(conn, TipoDocumento.PROCEDIMIENTOS, idSector);
			m.put("documentos_procedimientos", documentos);
			// Cargamos todos los documentos bajo instrucciones, de este sector.
			documentos = Documento.obtenerDocumentos(conn, TipoDocumento.INSTRUCCIONES, idSector);
			m.put("documentos_instrucciones", documentos);
			// Cargamos todos los documentos bajo registros, de este sector.
			documentos = Documento.obtenerDocumentos(conn, TipoDocumento.REGISTROS, idSector);
			m.put("documentos_registros", documentos);
			// Cargamos todos los documentos bajo regulaciones, de este sector.
			documentos = Documento.obtenerDocumentos(conn, TipoDocumento.REGULACIONES, idSector);
			m.put("documentos_regulaciones", documentos);
			
			ConnectionPool.closeConn(conn);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new OperationException();
		}
		
		return m;
	}
	
	
	@Override
	public String getReturnURL() {
		// TODO Auto-generated method stub
		return "Documentos/ListarDocumentos.jsp";
	}

}
